<?php

/**
 * PHP Security Library.
 *
 * @author Kai Sellgren
 * @copyright Copyright (C) Kai Sellgren 2010
 * @package PHP Security Library
 * @since Version 1.00
 * @license http://opensource.org/licenses/lgpl-3.0.html GNU Lesser General Public License
 */

namespace PSL;

/**
 * The RBAC class is used manage user privileges in a modern way using Role Based Access Control.
 *
 * @author Kai Sellgren
 * @since 1.00
 */
abstract class RBAC
{
	protected $tablePermission		= 'Permission';
	protected $tableRole			= 'Role';
	protected $tableRolePermission	= 'RolePermission';
	protected $tableRoleTask		= 'RoleTask';
	protected $tableTask			= 'Task';
	protected $tableTaskPermission	= 'TaskPermission';
	protected $tableUser			= 'User';
	protected $tableUserPermission	= 'UserPermission';
	protected $tableUserRole		= 'UserRole';
	protected $tableUserTask		= 'UserTask';

	public function __construct()
	{

	}

	abstract public function hasOperation();

	abstract public function hasTask();

	abstract public function hasRole();

	abstract public function assignOperation();

	abstract public function assignTask();

	abstract public function assignRole();

	abstract public function revokeOperation();

	abstract public function revokeTask();

	abstract public function revokeRole();
}